/*
 * Copyright 2010 Gal Dolber.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.unnison.framework.test.mvp.event;

import com.google.gwt.event.shared.GwtEvent;

public class AnidatedEvent extends GwtEvent<AnidatedHandler> {

    public static class Data {
        private String name;

        public Data(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }

    private static Type<AnidatedHandler> type;

    public static Type<AnidatedHandler> getType() {
        return type != null ? type : (type = new Type<AnidatedHandler>());
    }

    private final Data data;

    public AnidatedEvent(Data data) {
        this.data = data;
    }

    @Override
    protected void dispatch(AnidatedHandler handler) {
        handler.onAnidated(this);
    }

    @Override
    public Type<AnidatedHandler> getAssociatedType() {
        return getType();
    }

    public Data getData() {
        return data;
    }
}
